import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { AppComponent } from './app.component'
import { NzButtonModule } from 'ng-zorro-antd/button'
import { NzMenuModule } from 'ng-zorro-antd/menu'
import { NzCardModule } from 'ng-zorro-antd/card'
import { NzBreadCrumbModule } from 'ng-zorro-antd/breadcrumb'
import { NzIconModule } from 'ng-zorro-antd/icon'
import { NzTagModule } from 'ng-zorro-antd/tag'
import { NzGridModule } from 'ng-zorro-antd/grid'
import { NzTabsModule } from 'ng-zorro-antd/tabs'
import { NzTreeModule } from 'ng-zorro-antd/tree'
import { NzTableModule } from 'ng-zorro-antd/table'
import { NzDividerModule } from 'ng-zorro-antd/divider'
import { NzModalModule } from 'ng-zorro-antd/modal'
import { NzFormModule } from 'ng-zorro-antd/form'
import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
import { NzInputModule} from 'ng-zorro-antd/input'
import { NzTimePickerModule } from 'ng-zorro-antd/time-picker'
import { NzDatePickerModule } from 'ng-zorro-antd/date-picker'
import { NzInputNumberModule } from 'ng-zorro-antd/input-number'
import { NzMentionModule } from 'ng-zorro-antd/mention'
import { NzRadioModule } from 'ng-zorro-antd/radio'
import { NgxEchartsModule } from 'ngx-echarts'
import { NzLayoutModule } from 'ng-zorro-antd/layout'
import { NzSelectModule } from 'ng-zorro-antd/select'
import { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm'
import { NzSpaceModule } from 'ng-zorro-antd/space'
import { NzMessageModule } from 'ng-zorro-antd/message'
import { NzSwitchModule } from 'ng-zorro-antd/switch'
import { HomeComponent } from './home/home.component'
import { AppRoutingModule } from './app-routing.module' 
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'
import { UsersComponent } from './users/users/users.component'
import { RolesComponent } from './users/roles/roles.component'
import { DepartmentComponent } from './users/department/department.component'
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'
import { GrowCardComponent } from './home/component/grow-card/grow-card.component'
import { CountToComponent } from './component/count-to/count-to.component'
import { LineComponent } from './home/component/line/line.component'
import { BarComponent } from './home/component/bar/bar.component'
import { RadarComponent } from './home/component/radar/radar.component'
import { RingComponent } from './home/component/ring/ring.component'
import { PieComponent } from './home/component/pie/pie.component'
import { ModalComponent } from './users/users/component/modal/modal.component'
import { ReactiveFormsModule } from '@angular/forms';
import { RoleModalComponent } from './users/roles/component/role-modal/role-modal.component'
import { HttpInterceptorService } from '../services/https';
import { DeptModalComponent } from './users/department/component/dept-modal/dept-modal.component';
import { DynamicFormComponent } from './component/DynamicForm/dynamic-form/dynamic-form.component';
import { FormItemComponent } from './component/DynamicForm/component/form-item/form-item.component';
import { LoginModule } from './login/login.module'
import { LoginComponent } from './login/login.component';
import { TableComponent } from './component/table/table.component';
import { BaseFormComponent } from './component/base-form/base-form.component'
@NgModule({
  declarations: [
    AppComponent,
    HomeComponent,
    UsersComponent,
    RolesComponent,
    DepartmentComponent,
    GrowCardComponent,
    CountToComponent,
    LineComponent,
    BarComponent,
    RadarComponent,
    RingComponent,
    PieComponent,
    ModalComponent,
    RoleModalComponent,
    DeptModalComponent,
    DynamicFormComponent,
    FormItemComponent,
    TableComponent,
    // BaseFormComponent,
    // LoginComponent
  ],
  imports: [
    BrowserModule,
    NzButtonModule,
    AppRoutingModule,
    NzMenuModule,
    BrowserAnimationsModule,
    NzIconModule,
    HttpClientModule,
    NzBreadCrumbModule,
    NzCardModule,
    NzTagModule,
    NzGridModule,
    NzTabsModule,
    NzLayoutModule,
    NzTreeModule,
    NzTableModule,
    NzDividerModule,
    NzModalModule,
    NzFormModule,
    NzDropDownModule,
    ReactiveFormsModule,
    NzInputModule,
    NzTimePickerModule,
    NzRadioModule,
    NzInputNumberModule,
    NzMentionModule,
    NzSelectModule,
    NzPopconfirmModule,
    NzMessageModule,
    NzSpaceModule,
    NzSwitchModule,
    NzDatePickerModule,
    LoginModule,
    NgxEchartsModule.forRoot({
      echarts: () => import('echarts'),
    }),

  ],
  providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: HttpInterceptorService,
      multi: true,
  
    }
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }
